Qt开发技术:Q3D图表开发笔记(三):Q3DSurface三维曲面图介绍、Demo以及代码详解

您所在的位置:网站首页 qt 添加分隔符 Qt开发技术:Q3D图表开发笔记(三):Q3DSurface三维曲面图介绍、Demo以及代码详解

Qt开发技术:Q3D图表开发笔记(三):Q3DSurface三维曲面图介绍、Demo以及代码详解

2023-05-11 20:50| 来源: 网络整理| 查看: 265

原文地址:https://blog.csdn.net/qq21497936/article/details/130264470?spm=1001.2014.3001.5501

前言

qt提供了q3d进行三维开发,虽然这个框架没有得到大量运用也不是那么成功,性能上也有很大的欠缺,但是普通的点到为止的应用展示还是可以的。

其中就包括华丽绚烂的三维图表,数据量不大的时候是可以使用的。

前面介绍了基础的q3d散点图、柱状图,本篇介绍基础的三维曲面图。

Demo:Q3DSurface散点图演示效果

Q3D提供的三维图表

  依赖QtDataVisualization。在安装qt的时候要选择安装QtDataVisualization模块。

Q3DScatter散点图

Q3D的散点图,性能大约支撑1000个点可以不卡顿,具体依赖pc,1000个点是什么 概念,可以理解为:10x10x10的区域,每个区域一个数据点。

Q3DBars柱状图

Q3D的柱状图,性能跟散点图类似。

Q3DSurface平面凹凸图,平面纹理图,平面曲线图

Q3D的柱状图,性能跟散点图类似。

Q3DSurface平面曲线图

简介

Q3DSurface类提供了渲染3D曲面图的方法。该类使开发人员能够渲染3D表面图,并通过自由旋转场景来查看它们。可以通过QSurface3DSeries控制曲面的视觉财产,例如绘制模式和着色。

Q3DSurface通过在用户用鼠标左键点击的数据点上显示高亮显示的球(当使用默认输入处理程序时)或通过QSurface3DSeries进行选择来支持选择。选择指针附带一个标签,在默认情况下,该标签显示数据点的值和点的坐标。

轴上显示的值范围和标签格式可以通过QValue3DAxis进行控制。

要旋转图形,请按住鼠标右键并移动鼠标。缩放是使用鼠标滚轮完成的。两者都假设默认的输入处理程序正在使用中。

如果没有将任何轴明确设置为Q3DSurface,则会创建不带标签的临时默认轴。这些默认轴可以通过轴访问器进行修改,但只要明确设置了方向的任何轴,该方向的默认轴就会被破坏。

构造最小Q3D平面曲线图

  首先,构造Q3D曲面。由于在本例中,我们将图形作为顶级窗口运行,因此需要清除Qt::FramelessWindowHint标志,该标志在默认情况下设置:

Q3DSurface surface;surface.setFlags(surface.flags()^Qt::FramelessWindowHint);

  现在Q3DSurface已准备好接收要渲染的数据。创建数据元素以接收值:

QSurfaceDataArray*data=newQSurfaceDataArray;QSurfaceDataRow*dataRow1=newQSurfaceDataRow;QSurfaceDataRow*dataRow2=newQSurfaceDataRow;

  首先将数据喂给行元素,然后将它们的指针添加到数据元素:

*dataRow1setDrawMode(QSurface3DSeries::DrawSurface);// 视图添加该曲线_pQ3DSurface->addSeries(_pSurface3DSeries);// 设置阴影质量_pQ3DSurface->setShadowQuality(QAbstract3DGraph::ShadowQualitySoftLow);// 设置视角_pQ3DSurface->scene()->activeCamera()->setCameraPreset(Q3DCamera::CameraPresetIsometricLeft);// 设置子网格_pQ3DSurface->activeTheme()->setGridEnabled(true);#if1// 添加模拟数据QSurfaceDataArray*pSurfaceDataArray=newQSurfaceDataArray;#if1#if1// 这是 z 纬度for(intn=0;n



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3